package com.whm.hrmanagement.domain;

import java.util.Date;
import java.util.HashMap;
import java.util.List;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.whm.common.annotation.Excel;
import com.whm.common.core.domain.BaseEntity;

import com.whm.common.enums.OaStaffAttendanceEnum;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 员工考勤对象 oa_staff_attendance
 * 
 * @author whm
 * @date 2024-02-06
 *
 */
@TableName("oa_staff_attendance")
public class OaStaffAttendance extends BaseEntity
{
    public OaStaffAttendanceEnum getStatus() {
        return status;
    }

    public void setStatus(OaStaffAttendanceEnum status) {
        this.status = status;
    }

    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /** 员工id */
    @Excel(name = "员工id")
    private Long staffId;

    /** 上午上班时间 */
    private Date morStartTime;

    /** 上午下班时间 */
    private Date morEndTime;

    /** 下午上班时间 */
    private Date aftStartTime;

    /** 下午下班时间 */
    private Date aftEndTime;


    /** 考勤日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "考勤日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date attendanceDate;

    /** 0正常，1迟到，2早退，3旷工，4休假 */
    private OaStaffAttendanceEnum status;

    /** 员工姓名 */
    @Excel(name = "员工姓名")
    private String staffName;





    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setStaffId(Long staffId) 
    {
        this.staffId = staffId;
    }

    public Long getStaffId() 
    {
        return staffId;
    }
    public void setMorStartTime(Date morStartTime) 
    {
        this.morStartTime = morStartTime;
    }

    public Date getMorStartTime() 
    {
        return morStartTime;
    }
    public void setMorEndTime(Date morEndTime) 
    {
        this.morEndTime = morEndTime;
    }

    public Date getMorEndTime() 
    {
        return morEndTime;
    }
    public void setAftStartTime(Date aftStartTime) 
    {
        this.aftStartTime = aftStartTime;
    }

    public Date getAftStartTime() 
    {
        return aftStartTime;
    }
    public void setAftEndTime(Date aftEndTime) 
    {
        this.aftEndTime = aftEndTime;
    }

    public Date getAftEndTime() 
    {
        return aftEndTime;
    }
    public void setAttendanceDate(Date attendanceDate) 
    {
        this.attendanceDate = attendanceDate;
    }

    public Date getAttendanceDate() 
    {
        return attendanceDate;
    }

    public void setStaffName(String staffName) 
    {
        this.staffName = staffName;
    }

    public String getStaffName() 
    {
        return staffName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("staffId", getStaffId())
            .append("morStartTime", getMorStartTime())
            .append("morEndTime", getMorEndTime())
            .append("aftStartTime", getAftStartTime())
            .append("aftEndTime", getAftEndTime())
            .append("attendanceDate", getAttendanceDate())
            .append("status", getStatus())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("staffName", getStaffName())

            .toString();
    }
}
